//
//  JSSStatusModel.swift
//  WeiBoItem
//
//  Created by jss on 16/4/20.
//  Copyright © 2016年 jss. All rights reserved.
//

import UIKit

class JSSStatusModel: NSObject {

    // 如果在此使用 Int的话，在iPhone 5（32位系统）的手机上面，会将Int当成 Int32 来使用
    // 而 Int32位的最大值是没有微博id大的，所以会造成溢出
    var id: Int64 = 0
    
    //当前微博的内容
    var text: String?
    
    //创建时间
    var created_at:String?
    
    //微博来源
    var source: String?
    
    //用户信息(用户信息中保存的是JSSUserModel)
    var user:JSSUserModel?
    
    //当前微博的转发微博用户信息(因为其内部字段与 HMStatus 一样，所以就设置其类型为 HMStatu)
    var retweeted_status:JSSStatusModel?
    
    //配图数组
    var pic_urls:[JSSPictureInfoModel]?
    
    
    //字典转模型的构造方法
    init(dict:[String:AnyObject]) {
        
        super.init()
        setValuesForKeysWithDictionary(dict)
        
    }
    
    override func setValue(value: AnyObject?, forKey key: String) {
        //user里面又是一个字典数组
        if key == "user" {
            
            //首先判断value是否是字典类型
            guard let dict = value as? [String:AnyObject] else {
                return
            }
            //手动转模型
          user = JSSUserModel(dict: dict)
            
           // print(user)
            
        }else if key == "retweeted_status"{
            //手动转模型转发微博
            guard let dict = value as? [String:AnyObject] else {
                return
            }
            retweeted_status = JSSStatusModel(dict: dict)
            
        }else if key == "pic_urls"{
        
            
            //建一个数组 添加后面的模型
            var tempArray:[JSSPictureInfoModel] = [JSSPictureInfoModel]()
            //手动转模型(配图)
            guard let dicts = value as? [[String:AnyObject]] else {
                return
            }
            
            for dict in dicts {
                
              //字典转模型
                let list = JSSPictureInfoModel(dict: dict)
                
                tempArray.append(list)
            }
            //把转好的模型赋给当前原创微博的 pic_urls数组
            pic_urls = tempArray
        
        
        } else {
            super.setValue(value, forKey: key)
            
        }
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    
}
